www.gusucode.com > VC++ 酒店管理系统-源码程序 > VC++ 酒店管理系统-源码程序/code/hotel2003/ExEditCtrl/HistoryEdit.cpp
//Download by http://www.NewXing.com /* * HistoryEdit.cpp * * Description: * CHistoryEdit implementation * * A CEdit subclass that allows you to display a text history * of events. * * Author: * Ravi Bhavnani (ravib@datablast.net) * * Revision History: * 15 Mar 1998 rab Original version */ #include "stdafx.h" #include "HistoryEdit.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CHistoryEdit CHistoryEdit::CHistoryEdit() { m_bSelectable = FALSE; } CHistoryEdit::~CHistoryEdit() { } BEGIN_MESSAGE_MAP(CHistoryEdit, CEdit) //{{AFX_MSG_MAP(CHistoryEdit) ON_WM_SETFOCUS() //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CHistoryEdit operations void CHistoryEdit::AppendString (CString str1,CString str2,CRect rect)// [5/22/2003] // // Purpose: // Appends a text string to the history buffer. { CString strBuffer; // current contents of edit control // Append string GetWindowText (strBuffer); CDC* pDC=this->GetDC(); CSize size1=pDC->GetTextExtent(str1); CSize size2=pDC->GetTextExtent(str2); if (!strBuffer.IsEmpty()) strBuffer += "\r\n"; strBuffer += str1; int nsize=rect.Width()-size1.cx-size2.cx; CSize sizenull=pDC->GetTextExtent(" "); for(int i=0;i<(nsize/sizenull.cx);i++) { strBuffer+=" "; } strBuffer+=str2; SetWindowText (strBuffer); // Scroll the edit control // LineScroll (GetLineCount(), 0); } ///////////////////////////////////////////////////////////////////////////// // CHistoryEdit message handlers void CHistoryEdit::OnSetFocus(CWnd* pOldWnd) { // Don't allow user to select text if (m_bSelectable) CEdit::OnSetFocus (pOldWnd); else pOldWnd->SetFocus(); } // End EditHistroy.cpp